package com.feri.fitness.cs.service.impl;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.feri.fitness.common.config.RocketMQConfig;
import com.feri.fitness.common.dto.MoodCommentAddDto;
import com.feri.fitness.common.dto.MqMsgDto;
import com.feri.fitness.cs.dao.MoodCommentDao;
import com.feri.fitness.cs.domain.MoodComment;
import com.feri.fitness.cs.service.intf.MoodCommentService;
import com.feri.fitness.common.vo.R;
import javax.annotation.Resource;

import com.feri.fitness.cs.util.RocketMqUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import java.awt.*;

/**
 * 千锋郑州Java学科欢迎你
 * @program: Fitness
 * @description: 业务接口实现层
 * @author: Feri
 * @create: 2023-01-12 08:59:28
 */
@Service
public class MoodCommentServiceImpl implements MoodCommentService{
    /**
    *注入持久层对象*/
    @Resource
    private MoodCommentDao dao;


    @Override
    public R add(MoodCommentAddDto dto, int uid) {
        //1.验证
        if(dto!=null){
            //2.对评论内容进行文本审核 基于人工智能 第三方 百度的文本审核  省略

            //3.创建评论对象
            MoodComment comment=new MoodComment();
            BeanUtils.copyProperties(dto,comment);
            comment.init();
            comment.setUid(uid);
            //4.操作数据库
            if(dao.insert(comment)>0){
                return R.ok();
            }
        }
        return R.fail();
    }

    @Override
    public R addReplay(MoodCommentAddDto dto, int uid) {
        //1.验证
        if(dto!=null){
            //2.对评论内容进行文本审核 基于人工智能 第三方 百度的文本审核  省略

            //3.创建评论对象
            MoodComment comment=new MoodComment();
            BeanUtils.copyProperties(dto,comment);
            comment.init();
            comment.setUid(uid);
            //4.操作数据库
            if(dao.insert(comment)>0){
                //5.查询对应回复的评论内容
                MoodComment mc=dao.selectOne(new QueryWrapper<MoodComment>().eq("id",dto.getParentid()));

                //6.发送用户消息，告诉对方 有回复消息  基于MQ发消息
                RocketMqUtil.send(RocketMQConfig.MQ_MESSAGE, JSON.toJSONString(new MqMsgDto(mc.getUid(),6 ,"亲，你的评论有了新的回复，点击查看")));

                return R.ok();
            }
        }
        return R.fail();
    }

    @Override
    public R query(int mid) {
        return R.ok(dao.selectByMid(mid));
    }
}